↳ ITRS
↳ ITRStoIDPProof
z
eval(x, y, z) → Cond_eval(&&(>=@z(x, z), >@z(y, 0@z)), x, y, z)
Cond_eval(TRUE, x, y, z) → eval(x, y, +@z(z, y))
eval(x0, x1, x2)
Cond_eval(TRUE, x0, x1, x2)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
z
eval(x, y, z) → Cond_eval(&&(>=@z(x, z), >@z(y, 0@z)), x, y, z)
Cond_eval(TRUE, x, y, z) → eval(x, y, +@z(z, y))
(0) -> (1), if ((y[0] →* y[1])∧(+@z(z[0], y[0]) →* z[1])∧(x[0] →* x[1]))
(1) -> (0), if ((z[1] →* z[0])∧(x[1] →* x[0])∧(y[1] →* y[0])∧(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)) →* TRUE))
eval(x0, x1, x2)
Cond_eval(TRUE, x0, x1, x2)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
z
(0) -> (1), if ((y[0] →* y[1])∧(+@z(z[0], y[0]) →* z[1])∧(x[0] →* x[1]))
(1) -> (0), if ((z[1] →* z[0])∧(x[1] →* x[0])∧(y[1] →* y[0])∧(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)) →* TRUE))
eval(x0, x1, x2)
Cond_eval(TRUE, x0, x1, x2)
(1) (z[1]=z[0]∧&&(>=@z(x[1], z[1]), >@z(y[1], 0@z))=TRUE∧y[0]=y[1]1∧x[0]=x[1]1∧+@z(z[0], y[0])=z[1]1∧y[1]=y[0]∧x[1]=x[0] ⇒ COND_EVAL(TRUE, x[0], y[0], z[0])≥NonInfC∧COND_EVAL(TRUE, x[0], y[0], z[0])≥EVAL(x[0], y[0], +@z(z[0], y[0]))∧(UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥))
(2) (>=@z(x[1], z[1])=TRUE∧>@z(y[1], 0@z)=TRUE ⇒ COND_EVAL(TRUE, x[1], y[1], z[1])≥NonInfC∧COND_EVAL(TRUE, x[1], y[1], z[1])≥EVAL(x[1], y[1], +@z(z[1], y[1]))∧(UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥))
(3) (x[1] + (-1)z[1] ≥ 0∧-1 + y[1] ≥ 0 ⇒ (UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥)∧(-1)Bound + (-1)z[1] + x[1] ≥ 0∧-1 + y[1] ≥ 0)
(4) (x[1] + (-1)z[1] ≥ 0∧-1 + y[1] ≥ 0 ⇒ (UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥)∧(-1)Bound + (-1)z[1] + x[1] ≥ 0∧-1 + y[1] ≥ 0)
(5) (-1 + y[1] ≥ 0∧x[1] + (-1)z[1] ≥ 0 ⇒ -1 + y[1] ≥ 0∧(UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥)∧(-1)Bound + (-1)z[1] + x[1] ≥ 0)
(6) (-1 + y[1] ≥ 0∧x[1] ≥ 0 ⇒ -1 + y[1] ≥ 0∧(UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥)∧(-1)Bound + x[1] ≥ 0)
(7) (y[1] ≥ 0∧x[1] ≥ 0 ⇒ y[1] ≥ 0∧(UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥)∧(-1)Bound + x[1] ≥ 0)
(8) (y[1] ≥ 0∧x[1] ≥ 0∧z[1] ≥ 0 ⇒ y[1] ≥ 0∧(UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥)∧(-1)Bound + x[1] ≥ 0)
(9) (y[1] ≥ 0∧x[1] ≥ 0∧z[1] ≥ 0 ⇒ y[1] ≥ 0∧(UIncreasing(EVAL(x[0], y[0], +@z(z[0], y[0]))), ≥)∧(-1)Bound + x[1] ≥ 0)
(10) (EVAL(x[1], y[1], z[1])≥NonInfC∧EVAL(x[1], y[1], z[1])≥COND_EVAL(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)), x[1], y[1], z[1])∧(UIncreasing(COND_EVAL(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)), x[1], y[1], z[1])), ≥))
(11) ((UIncreasing(COND_EVAL(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)), x[1], y[1], z[1])), ≥)∧0 ≥ 0∧0 ≥ 0)
(12) ((UIncreasing(COND_EVAL(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)), x[1], y[1], z[1])), ≥)∧0 ≥ 0∧0 ≥ 0)
(13) ((UIncreasing(COND_EVAL(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)), x[1], y[1], z[1])), ≥)∧0 ≥ 0∧0 ≥ 0)
(14) (0 ≥ 0∧0 = 0∧(UIncreasing(COND_EVAL(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)), x[1], y[1], z[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 ≥ 0)
POL(>=@z(x1, x2)) = -1
POL(0@z) = 0
POL(TRUE) = 0
POL(&&(x1, x2)) = 0
POL(+@z(x1, x2)) = x1 + x2
POL(EVAL(x1, x2, x3)) = (-1)x3 + x1
POL(COND_EVAL(x1, x2, x3, x4)) = (-1)x4 + x2 + (-1)x1
POL(FALSE) = 2
POL(undefined) = -1
POL(>@z(x1, x2)) = -1
COND_EVAL(TRUE, x[0], y[0], z[0]) → EVAL(x[0], y[0], +@z(z[0], y[0]))
COND_EVAL(TRUE, x[0], y[0], z[0]) → EVAL(x[0], y[0], +@z(z[0], y[0]))
EVAL(x[1], y[1], z[1]) → COND_EVAL(&&(>=@z(x[1], z[1]), >@z(y[1], 0@z)), x[1], y[1], z[1])
FALSE1 → &&(FALSE, FALSE)1
+@z1 ↔
&&(TRUE, TRUE)1 ↔ TRUE1
FALSE1 → &&(FALSE, TRUE)1
FALSE1 → &&(TRUE, FALSE)1
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDPNonInfProof
↳ IDP
↳ IDependencyGraphProof
z
eval(x0, x1, x2)
Cond_eval(TRUE, x0, x1, x2)